// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Styling/SlateWidgetStyle.h"
#include "Textures/SlateIcon.h"

#include "SlateDemoWidgetStyle.generated.h"

/**
 * 
 */
USTRUCT()
struct SLATEDEMO_API FSlateDemoStyle : public FSlateWidgetStyle
{
	GENERATED_USTRUCT_BODY()

	FSlateDemoStyle();
	virtual ~FSlateDemoStyle();

	// FSlateWidgetStyle
	virtual void GetResources(TArray<const FSlateBrush*>& OutBrushes) const override;
	static const FName TypeName;
	virtual const FName GetTypeName() const override { return TypeName; };
	static const FSlateDemoStyle& GetDefault();
#pragma region 按钮图片设置

	UPROPERTY(EditAnywhere, Category = "按钮图片设置", DisplayName = "初始状态图片")
		FSlateBrush NormalBtn;
	UPROPERTY(EditAnywhere, Category = "按钮图片设置", DisplayName = "选中状态图片")
		FSlateBrush HoverBtn;
	UPROPERTY(EditAnywhere, Category = "按钮图片设置", DisplayName = "点击状态图片")
		FSlateBrush ClickBtn;
	UPROPERTY(EditAnywhere, Category = "按钮图片设置", DisplayName = "按钮样式")
		FButtonStyle BtnStyle;
	UPROPERTY(EditAnywhere, Category = "旋转图片设置", DisplayName = "旋转")
		FSlateBrush runimg;
	UPROPERTY(EditAnywhere, Category = "菜单图片", DisplayName = "Warning")
		FSlateBrush WarningIco;
	UPROPERTY(EditAnywhere, Category = "九宫格", DisplayName = "九宫格不启用")
		FSlateBrush NineEnable;
	UPROPERTY(EditAnywhere, Category = "九宫格", DisplayName = "九宫启用")
		FSlateBrush NineDesable;

};

/**
 */
UCLASS(hidecategories=Object, MinimalAPI)
class USlateDemoWidgetStyle : public USlateWidgetStyleContainerBase
{
	GENERATED_BODY()

public:
	/** The actual data describing the widget appearance. */
	UPROPERTY(Category=Appearance, EditAnywhere, meta=(ShowOnlyInnerProperties))
	FSlateDemoStyle WidgetStyle;

	virtual const struct FSlateWidgetStyle* const GetStyle() const override
	{
		return static_cast< const struct FSlateWidgetStyle* >( &WidgetStyle );
	}
};
